package igor.lakienko.ru.generation.quotes.dto;

import igor.lakienko.ru.generation.quotes.enums.TypeSecurities;
import lombok.Builder;
import lombok.Data;
import lombok.NonNull;
import lombok.experimental.SuperBuilder;

import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.UUID;

@Data
@SuperBuilder(toBuilder = true)
public abstract class MessageEventDto {

    /**
     * Идентификатор сообщения.
     */
    @NonNull
    @Builder.Default
    protected String id = UUID.randomUUID().toString();

    /**
     * Время отправки события.
     */
    @NonNull
    @Builder.Default
    protected ZonedDateTime sentAt = ZonedDateTime.now(ZoneId.of("Z")).truncatedTo(ChronoUnit.MILLIS);

    /**
     * Тип котировки.
     */
    @NonNull
    protected TypeSecurities type;

}
